Soy un novato en Ruby on Rails. Sé << operator lo que está haciendo pero estoy trabajando con datatable y tengo códigos como estos:
def data items.map do |donation| [].tap do |column| column << donation_path(donation) column <<= current_user.admin? ? link_to(donation.sender.name, admin_store_path(donation.sender)) : donation.sender.name end end endTraté de <<= en los rieles c y el resultado es:
irb(main):001:0> ar = [] => [] irb(main):002:0> ar << 1 => [1] irb(main):003:0> ar <<= 1 => [1, 1] irb(main):004:0> ar <<= 2 => [1, 1, 2]Creo que <<= es similar a << pero tengo que estar seguro.
Si usa un operador op= en Ruby, la expresión
x op = y
es equivalente a
x = x op y
En su caso, significa que un
a <<= bes equivalente a
a = a << b pero dado que a << b ya modifica a , no gana nada al usar <<= .
NOTA: Como se señaló en los comentarios, esto no se aplica al operador [] : si desea tener una versión de asignación, debe definir []= explícitamente.